Çàêðûòü îêíî
Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"
5.3.8. Öèêëû
Äëÿ opãaíèçaöèè ìíoãoêpaòíoão âûïoëíeíèÿ ïoñëeäoâaòeëüíoñòè ïpeäïèñaíèé ècïoëüçóþòcÿ öèêëû (ä25). Bce oíè ÿâëÿþòcÿ cocòaâíûìè ïpeäïècaíèÿìè è cocòoÿò èç çaãoëoâêa è òeëa. Teëo öèêëa oápaçóeòcÿ ïpeäïècaíèÿìè, êoòopûe íaäo ïoâòopÿòü.
1) Öèêë ÏOKA èìeeò òpaäèöèoííóþ ñeìaíòèêó: âía÷aëe ïpoâepÿeòñÿ óñëoâèe, óêaçaííoe â çaãoëoâêe öèêëa. Eñëè oío èñòèíío, âûïoëíÿþòñÿ âñe ïpeäïèñaíèÿ oò çíaêa :: (÷èòaeòñÿ "ïoâòopÿòü") äo ñëoâa BCE. Çaòeì ñíoâa ïpoâepÿeòñÿ óñëoâèe è ò.ä. Eñëè ïpè o÷epeäíoé ïpoâepêe óñëoâèe oêaçaëoñü ëoæíûì, âûïoëíeíèe öèêëa ïpeêpaùaeòñÿ. Eñëè oío áûëo ëoæíûì ïpè ïepâoé æe ïpoâepêe, òeëo öèêëa íe âûïoëíèòñÿ íè paçó.
Taêèì oápaçoì, ýòoò öèêë ïoçâoëÿeò âûïoëíÿòü oïpeäeëeííûe äeéñòâèÿ, ïoêa èñòèíío íeêoòopoe óñëoâèe. Ïpèìep:
# 1->X;
# ÏOKA X<=5 ::
> ?X,2**X;
> X+1->X
> BCE;
1 2
2 4
3 8
4 16
5 32
2) Öèêë ÏOBTOP ïoçâoëÿeò âûïoëíèòü óêaçaííûé íaáop ïpeäïèñaíèé çaäaííoe ÷èñëo paç. Bía÷aëe âû÷èñëÿeòñÿ çía÷eíèe âûpaæeíèÿ â çaãoëoâêe öèêëa. Oío äoëæío áûòü öeëûì íeoòpèöaòeëüíûì ÷èñëoì, èía÷e âûäaeòñÿ ñooáùeíèe oá oøèáêe. Çaòeì òeëo öèêëa âûïoëíÿeòñÿ óêaçaííoe ÷èñëo paç. B ñëó÷ae íóëeâoão ÷èñëa ïpoxoäoâ òeëo öèêëa íe âûïoëíÿeòñÿ íè paçó. Ïpèìep:
# 1->X;
# ÏOBTOP 5 PAÇ ::
> ?X,2**X;
> X+1->X
> BCE;
1 2
2 4
3 8
4 16
5 32
(B ýòoì ïpèìepe íeñìoòpÿ ía ÿâío çaäaííoe ÷èñëo ïpoxoäoâ ïpèøëoñü ââeñòè è èìÿ-ñ÷eò÷èê).
Bapèaíòû PAÇ è PAÇA ýêâèâaëeíòíû, ñëóæaò äëÿ óäoáñòâa ÷òeíèÿ ïpoãpaììû è ìoãóò áûòü oïóùeíû.
3) Öèêë ÄËß (öèêë ïepeáopa) ñóùeñòâóeò â äâóx ôopìax.
Ôopìa ÄËß-OT ñooòâeòñòâóeò òpaäèöèoííoìó öèêëó òèïa ïpoãpeññèè. Èìÿ, óêaçaííoe ïoñëe ñëoâa ÄËß, íaçûâaeòñÿ ïepeìeííoé öèêëa, âûpaæeíèe ïoñëe OT oïpeäeëÿeò ía÷aëüíoe çía÷eíèe, âûpaæeíèe ïoñëe ÄO - êoíe÷íoe, ïoñëe ØAà óêaçûâaeòñÿ ïpèpaùeíèe. Eñëè øaã íe óêaçaí, oí ïpèíèìaeòñÿ paâíûì eäèíèöe. Çía÷eíèÿ âñex òpex âûpaæeíèé äoëæíû áûòü öeëûìè èëè äpoáíûìè ÷èñëaìè.
Öèêë âûïoëíÿeòñÿ â òaêoì ïopÿäêe:
%LISTL
-Bû÷èñëÿþòñÿ âñe òpè óêaçaííûe â çaãoëoâêe âûpaæeíèÿ.
-Ïepeìeííoé öèêëa ïpèñâaèâaeòñÿ ía÷aëüíoe çía÷eíèe (ñ âûäa÷eé çaïpoña, eñëè oía èìeëa ÷añòè÷íóþ çaùèòó).
-Ïpoâepÿeòñÿ óñëoâèe oêoí÷aíèÿ öèêëa: òeêóùee çía÷eíèe ïepeìeííoé öèêëa áoëüøe êoíe÷íoão çía÷eíèÿ ïpè ïoëoæèòeëüíoì øaãe èëè ìeíüøe eão ïpè oòpèöaòeëüíoì ( (KÇ-Ï) x sign(Ø) >= 0 , ãäe KÇ,Ï,sign(Ø) - êoíe÷íoe çía÷eíèe, ïepeìeííaÿ öèêëa è çíaê øaãa ñooòâeòñòâeíío; çíaê íóëÿ ñ÷èòaeì eäèíèöeé).
-Eñëè oío ëoæío, âûïoëíÿeòñÿ òeëo öèêëa, çaòeì ê ïepeìeííoé öèêëa ïpèáaâëÿeòñÿ çía÷eíèe øaãa, âíoâü ïpoâepÿeòñÿ óñëoâèe è ò.ä.
-Eñëè ïpè o÷epeäíoé ïpoâepêe óñëoâèe oêaçûâaeòñÿ èñòèííûì, öèêë çaâepøaeòñÿ. Ïpè ýòoì ïepeìeííaÿ öèêëa ïoëó÷aeò ïóñòoe çía÷eíèe.
%ENDL
Ýòa ôopìa öèêëa ïoçâoëÿeò íaèáoëee eñòeñòâeííûì oápaçoì peøèòü çaäa÷ó ïpeäûäóùèx ïpèìepoâ:
# ÄËß X OT 1 ÄO 5 ::
> ?X,2**X
> BCE;
1 2
2 4
3 8
4 16
5 32
4) Öèêë ÄËß-ÈÇ ïpeäíaçía÷eí äëÿ ïoýëeìeíòíoé oápaáoòêè òeêñòoâ, êopòeæeé è ìíoæeñòâ. Ïpè âûïoëíeíèè ýòoão ïpeäïèñaíèÿ ïepeìeííaÿ öèêëa ïoo÷epeäío ïpèíèìaeò çía÷eíèÿ âcex ýëeìeíòoâ êopòeæa èëè ìíoæecòâa (êaæäoé ëèòepû òeêcòa). Äëÿ òeêcòoâ è êopòeæeé ïopÿäoê ïepeáopa oïpeäeëeí oò ïepâoão ýëeìeíòa ê ïocëeäíeìó. Ýëeìeíòû ìíoæecòâa ïepeáèpaþòcÿ â ïpoèçâoëüíoì ïopÿäêe.
Ïocëe çaâepøeíèÿ öèêëa ïepeìeííaÿ ïpèíèìaeò ïócòoe çía÷eíèe. Çía÷eíèe âûpaæeíèÿ, óêaçaííoão â çaãoëoâêe (ïepeáèpaeìaÿ còpóêòópa), âû÷ècëÿeòcÿ oäèí paç â ía÷aëe paáoòû öèêëa.
Ïpèìep - ïoäñ÷eò ÷èñëa áóêâ "A" â òeêñòe ñ èìeíeì KHÈÃA:
0->C×;
ÄËß ÁÓKBA ÈÇ KHÈÃA ::
ECËÈ ÁÓKBA="A" TO C×+1->C× BCE
BCE;
?"B TEKCTE KHÈÃA",C×," ÁÓKB 'A'";
%LEFT 5
Çaìe÷aíèe. Èìÿ, èñïoëüçóeìoe â êa÷eñòâe ïepeìeííoé â öèêëe ÄËß (â oáeèx ôopìax), ïpè âxoäe â öèêë íe äoëæío èìeòü ïoëíoé èëè ñèñòeìíoé çaùèòû, èía÷e ïpècâaèâaíèe eìó áóäeò eâoçìoæío.
%LEFT -5
Öèêë ÄËß-ÈÇ ïoçâoëÿeò ïepeápaòü âñe ýëeìeíòû ñòpóêòópû èëè òeêñòa, ío íe ïoçâoëÿeò èçìeíÿòü ýòè ýëeìeíòû. Kpoìe òoão, oí ÿâëÿeòñÿ eäèíñòâeííûì ïpeäóñìoòpeííûì â PAÏÈPE ñpeäñòâoì ïepeáopa âñex ýëeìeíòoâ ìíoæeñòâa.
Eñëè òpeáóeòñÿ ïepeápaòü âñe ýëeìeíòû êopòeæa èëè òeêñòa è ïoïóòío óìeòü èçìeíÿòü íeêoòopûe èç íèx, ñëeäóeò èñïoëüçoâaòü öèêë ÄËß-OT è âûáopêó, íaïpèìep:
ÄËß X OT 1 ÄO #KOPT ::
ECËÈ KOPT[X]<0 TO
-KOPT[X] -> KOPT[X]
BCE
BCE;
Bo âpeìÿ èñïoëíeíèÿ öèêëoâ âoçìoæío çaöèêëèâaíèe, ò.e. íeâûïoëíeíèe óñëoâèÿ oêoí÷aíèÿ öèêëa. Ïpè÷èíoé ýòoìó ÷aùe âñeão íeâepíaÿ opãaíèçaöèÿ öèêëa â ïpoãpaììe. Haèáoëee òèïè÷íûe ïpèìepû:
%LISTD
- ÄËß X OT 1 ÄO 1 + 1E-11 ØAÃ 1E-12 :: ... BCE;
Xoòÿ öèêë äoëæeí âûïoëíèòüñÿ âñeão oäèííaäöaòü paç, ïpoèçoéäeò çaöèêëèâaíèe, ïoòoìó ÷òo
%AREA 4
1.00000000000 +
0.000000000001 =
1.000000000001
-------------
è ïoñëe oòñeêaíèÿ äâeíaäöaòè çía÷aùèx öèôp o÷epeäíoe çía÷eíèe ïepeìeííoé öèêëa oêaæeòñÿ òeì æe, ÷òo è äo ïpèpaùeíèÿ: Ïpèpaùeíèe ïepeìeííoé öèêëa ôaêòè÷eñêè oêaçaëoñü íóëeì.
-Ïoìíÿ o ïoãpeøíocòÿx âû÷ècëeíèé c äpoáíûìè ÷ècëaìè, íe cëeäóeò ïoëüçoâaòücÿ cpaâíeíèeì äpoáíûx ÷èceë ía paâeícòâo â ócëoâèÿx oêoí÷aíèÿ öèêëoâ:
# 0->C×;
# ÏOKA C×/=1:: ?C×; C×+1/3->C×; BCE;
0.0
0.333333333333
0.666666666666
%AREA 3
0.999999999999
1.33333333333
. . .
- 1->X;
ÏOKA X<=30 :: ?X,X**2 BCE;
Óñëoâèe öèêëa âñeãäa áóäeò èñòèííûì, ïoòoìó ÷òo â öèêëe X íe ïoëó÷aeò ïpèpaùeíèÿ. Heoáxoäèìo cëeäèòü è ça òeì, ÷òoáû ócëoâèe oêoí÷aíèÿ öèêëa paío èëè ïoçäío âûïoëíÿëocü. Haïpèìep, cëeäóþùaÿ ïpoãpaììa òoæe çaöèêëèòcÿ:
1->X;
ÏOKA X/=0 :: -X->X BCE;
-Öèêë ÄËß-ÈÇ çaöèêëèòüñÿ íe ìoæeò, ò.ê. ïepeáèpaeìaÿ ñòpóêòópa èìeeò êoíe÷íóþ ìoùíoñòü.
-Öèêë ÏOBTOP çaöèêëèòüñÿ íe ìoæeò, ïoòoìó ÷òo ÷èñëo ïpoxoäoâ - òoæe êoíe÷íoe ÷èñëo. Oío, oäíaêo, ìoæeò oêaçaòücÿ cëèøêoì áoëüøèì, ÷òo ôaêòè÷ecêè paâíocèëüío çaöèêëèâaíèþ.
%ENDL
×òoáû ïpepâaòü èñïoëíeíèe ïpoãpaììû, íaïpèìep, ïpè çaöèêëèâaíèè, íaäo íaæaòü ôóíêöèoíaëüíóþ êëaâèøó F1. Ïpè ýòoì ía ýêpaí âûäaeòñÿ ñooáùeíèe "CTOÏ", öèêë ïpèíóäèòeëüío çaâepøaeòñÿ (ïepeìeííaÿ öèêëa ÄËß ñoxpaíÿeò ñâoe ïoñëeäíee çía÷eíèe), ïoñëe ÷eão ïpoèñxoäèò âûxoä â peæèì ïpèocòaíoâa (eñëè oñòaíoâëeía ïpoöeäópa èëè ôóíêöèÿ).